<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="John Punin">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" alink="#FF0000">
<font size=-1>
<center>
<h2>
WWWPal Client-Server System for Webgraphs</h1></center>

<center>John Punin, Yongxing Wang, and Mukkai Krishnamoorthy
<p><i>Computer Science Department, Rensselaer Polytechnic Institute,
Troy, NY, USA.</i></center>

<p><b>Abstract</b>
<blockquote>We describe a Three-tier Client-Server System for displaying
and manipulating Webgraphs. Webgraphs are graphs, a collection of nodes
(URL's) and edges (describing the interconnecting links) of a user's, department's
or an organization's Web site. We also provide a XML design and a DTD for
describing Webgraphs.</blockquote>

<h3>
1. System Architecture</h3>
The architecture of our client-server system is three-tier consisting of 
Graph Client, Web Server and Graph Server. The 
Web Server is the "agent" between the Graph Client and the Graph Server.
We use the Graph Visualizer of the WWWPal System [3] as the Graph Client.
The Graph Client communicates with the Web Server using HTTP
Protocol. The Graph Client uses libwww of W3C to implement the HTTP Protocol.
The communication between the Web Server and the Graph Server is
through the API of the Web Server or a CGI program. The purpose
of the Graph Visualizer is to display the graphs that the server sends
back as responses. The Graph Visualizer interacts with the Graph Library
to further analyze the received graphs. The format of the Graphs is a new
graph language XGMML (eXtensible Graph Modeling and Markup Language)[6] based
on XML [4].
<p><center><img SRC="system.gif"></center>
<p><center><b>Figure 1: System Architecture</b></center>
<br>&nbsp;
<h3>
2. System Design</h3>
The Graph Client of the System is an updated version of the Graph Visualizer
of the WWWPal System. The purpose of the WWWPal System is to organize web
documents. The Graph Visualizer is a component of the WWWPal System to
display Webgraphs. We incorporated WWWPal with a communication module,
based on the Libwww of W3C [5]. This enables the Graph Visualizer to send
a request to the Web Server using HTTP Protocol. The Web Server
will redirect the request to the Graph Server where the request will be
processed. The Graph Server will send back a Webgraph to the Graph Client
so the user can visualize and analyze this graph.

<p>The Graph Server communicates directly to the Web Server using the
API of the Web Server. We have provided a CGI interface so
the Graph Server can interact with any Web Server. We use webbot of the
W3C to explore a Web Site and save its structure in a Webgraph. The Graph
Server reads the Webgraph of a Web site and is ready to answer any inquires
about the structure of the Webgraph. Examples of the requests can be:
<ul>
<li>
Pages of a user (John Punin) or directory (Guide of Computer Science Department).</li>

<li>
Pages as result of searching a word in the title, url or keywords.</li>

<li>
Most visited Web pages, most visited Web hyperlinks and most visited path
of a web site. </li>

<li>
Pages with highest authorities and hubs in a Webgraph. The Graph Server
implements Kleinberg's Algorithm [2] in the Webgraph.</li>

<li>
Pages with problems such as: Broken links, Dead ends, Huge files.</li>

<li>
Pages in the most expensive paths of a Webgraph. The Graph Server can compute
the cost of navigation from the root of the Webgraph to any of the nodes
in the graph.</li>

<li>
Pages in a web collection. A Web Collection is found following the tag
&lt;LINK> in the Web documents.</li>
</ul>

<p>Webgraphs are written in XGMML (eXtensible Graph Modeling and Markup Language)
based on XML (eXtensible Markup Language) and GML (Graph Modeling Language)
[1].&nbsp; A DTD [6] is provided to ensure validation of the Graph File. We
used GML because it is a powerful and general language to describe a graph.
We expressed GML with XML so any XML parser can parse graphs written in
XGMML. 

<p>Figure 2 shows the Graph Visualizer displaying a Webgraph written in XGMML. This Webgraph was
obtained from the Graph Server. The request was to get all Web pages under
the url: http://www.cs.rpi.edu/~puninj/JAVA/
<p><center><img SRC="javagraph.gif"></center>
<p><center><b>Figure 2: Graph Visualizer</b></center>
<h3>
References</h3>
<ol>
<li>
Michael Himsolt, "GML: A portable Graph File Format", Technical Report,
Universit&auml;t Passau, 94030 Passau, Germany, 1997.</li>

<li>
J. Kleinberg. Authoritative sources in a hyperlinked environment. Proc.
9th ACM-SIAM Symposium on Discrete Algorithms, 1998. Also appears as IBM
Research Report RJ 10076, May 1997.</li>

<li>
John Punin, Mukkai S. Krishnamoorthy, "WWWPal System - A System for analysis
and synthesis of Web pages", In Proceedings of the WebNet 98 Conference,
Orlando, November, 1998.</li>

<li>
Extensible Markup Language W3C Working Draft at <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li>

<li>
Libwww - The W3C Sample Code Library at <a href="http://www.w3c.org/Library/">http://www.w3c.org/Library/</a></li>

<li>
XGMML - eXtensible Graph Modeling and Markup Language  at <a href="http://www.cs.rpi.edu/~puninj/XGMML/">http://www.cs.rpi.edu/~puninj/XGMML/</a></li>

</ol>

</body>
</html>


